﻿/*
 * KLF Headless Browser
 * Written by Kris Oye <kristianoye@gmail.com>
 * Copyright (C) 2011-2012.  All rights reserved.
 */
namespace KLF.Lib.Browser.DOM
{
    #region Using Statements

    using System;

    #endregion

    /// <summary>
    /// The TypeInfo interface represents a type referenced from Element or 
    /// Attr nodes, specified in the schemas associated with the document. 
    /// The type is a pair of a namespace URI and name properties, and depends
    /// on the document's schema. 
    /// </summary>
    public class TypeInfo
    {
        #region DOM Level 3 Compliance

        public const long DERIVATION_RESTRICTION = 0x00000001;
        public const long DERIVATION_EXTENSION = 0x00000002;
        public const long DERIVATION_UNION = 0x00000004;
        public const long DERIVATION_LIST = 0x00000008;

        /// <summary>
        /// 
        /// </summary>
        /// <param name="typeNamespaceArg"></param>
        /// <param name="typeNameArg"></param>
        /// <returns></returns>
        public bool isDerivedFrom(string typeNamespaceArg, string typeNameArg)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// 
        /// </summary>
        public string typeName
        {
            get
            {
                return StringLookup.IsNullOrEmpty(_typeName) ? null : _typeName.Value;
            }
            internal set
            {
                _typeName = new StringLookup(value);
            }
        }
        internal StringLookup _typeName;

        /// <summary>
        /// 
        /// </summary>
        public string typeNamespace
        {
            get
            {
                return StringLookup.IsNullOrEmpty(_typeNamespace) ? null : _typeNamespace.Value;
            }
            internal set
            {
                _typeNamespace = new StringLookup(value);
            }
        }
        internal StringLookup _typeNamespace;

        #endregion
    }

}
